﻿Public Class frmQuanLyKhachHang

    
    Private Sub frmQuanLyKhachHang_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim listKhach As New List(Of KhachThueDTO)
        listKhach = KhachThueBUS.GetAll()
        gvDanhSachKH.DataSource = listKhach

        Dim listLoaiNha As New List(Of LoaiNhaDTO)
        listLoaiNha = LoaiNhaBUS.GetAll()
        cbxLoaiNha.DataSource = listLoaiNha
        cbxLoaiNha.ValueMember = "iMaLoaiNha"
        cbxLoaiNha.DisplayMember = "strTenLoaiNha"

        cbxTimNhuCauNha.DataSource = listLoaiNha
        cbxTimNhuCauNha.ValueMember = "iMaLoaiNha"
        cbxTimNhuCauNha.DisplayMember = "strTenLoaiNha"

        Dim listQuan As New List(Of QuanDTO)
        listQuan = QuanBUS.GetAll()
        cbxQuan.DataSource = listQuan
        cbxQuan.ValueMember = "iMaQuan"
        cbxQuan.DisplayMember = "strTenQuan"

        btnLuuLai.Enabled = False
    End Sub

    Private Sub gvDanhSachKH_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles gvDanhSachKH.SelectionChanged
        Dim makhach As String = gvDanhSachKH.CurrentRow.Cells(0).Value
        txtMaKH.Text = makhach
        txtTenKH.Text = gvDanhSachKH.CurrentRow.Cells(1).Value
        txtDienThoai.Text = gvDanhSachKH.CurrentRow.Cells(2).Value


        Dim dtNhuCau As New DataTable()
        dtNhuCau = NhuCauBUS.GetByMaKhach(makhach)

        gvDSNhuCau.DataSource = dtNhuCau
    End Sub

    Private Sub gvDSNhuCau_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles gvDSNhuCau.SelectionChanged
        cbxLoaiNha.Text = gvDSNhuCau.CurrentRow.Cells(1).Value
        txtKhoangGia.Text = gvDSNhuCau.CurrentRow.Cells(3).Value
        cbxQuan.Text = gvDSNhuCau.CurrentRow.Cells(2).Value
    End Sub

    Private Sub btnThemKhachHang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThemKhachHang.Click
        Dim makhachmoi As String = ""
        Dim macuoi As String = KhachThueBUS.LayMa_KT_Cuoi()
        txtMaKH.Text = KhachThueBUS.TinhMaKhach(macuoi)

        txtTenKH.Text = ""
        txtDienThoai.Text = ""
        txtKhoangGia.Text = ""
        cbxLoaiNha.SelectedIndex = 0
        cbxQuan.SelectedIndex = 0

        btnLuuLai.Enabled = True
        btnSuaKhachHang.Enabled = False
        btnXoaKhachHang.Enabled = False
    End Sub

    Private Sub btnLuuLai_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLuuLai.Click
        If KhachThueBUS.KiemTraDayDu(txtTenKH.Text, txtDienThoai.Text) Then
            If NhuCauBUS.KiemTraDayDu(txtKhoangGia.Text) Then
                Dim khachthue As New KhachThueDTO()
                Dim nhucau As New NhuCauDTO()

                khachthue.strMaKhachThue = txtMaKH.Text
                khachthue.strHoTen = txtTenKH.Text
                khachthue.strDienThoai = txtDienThoai.Text
                khachthue.isTinhTrang = False
                khachthue.isTamXoa = False

                KhachThueBUS.Insert(khachthue)
                '-----------------------
                nhucau.iMaLoaiNha = cbxLoaiNha.SelectedValue
                nhucau.iMaQuan = cbxQuan.SelectedValue
                nhucau.iKhoangGia = txtKhoangGia.Text
                nhucau.strMaKhachThue = khachthue.strMaKhachThue

                NhuCauBUS.Insert(nhucau)

                MessageBox.Show("Bạn đã thêm thành công Khách Hàng này!", "THÔNG BÁO")

                Dim listKhach As New List(Of KhachThueDTO)
                listKhach = KhachThueBUS.GetAll()
                gvDanhSachKH.DataSource = listKhach
            Else
                MessageBox.Show("Bạn chưa nhập đủ thông tin cần thiết!", "THÔNG BÁO")
            End If
        Else
            MessageBox.Show("Bạn chưa nhập đủ thông tin cần thiết!", "THÔNG BÁO")
        End If


        btnLuuLai.Enabled = False
        btnSuaKhachHang.Enabled = True
        btnXoaKhachHang.Enabled = True

    End Sub

    Private Sub btnXoaKhachHang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXoaKhachHang.Click
        If IsNothing(gvDanhSachKH.SelectedRows) Then
            MessageBox.Show("Bạn chưa chọn Khách thuê nào để Xóa!!", "THÔNG BÁO")
        Else
            Dim idMaKT As String = txtMaKH.Text
            Dim istamxoa As Boolean = True

            KhachThueBUS.Update_TamXoa(idMaKT, istamxoa)

            MessageBox.Show("Dữ liệu đã được đánh dấu Xóa!!", "THÔNG BÁO")
            Dim listKhach As New List(Of KhachThueDTO)
            listKhach = KhachThueBUS.GetAll()
            gvDanhSachKH.DataSource = listKhach

        End If
    End Sub

    Private Sub btnSuaKhachHang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSuaKhachHang.Click
        If KhachThueBUS.KiemTraDayDu(txtTenKH.Text, txtDienThoai.Text) Then
            If NhuCauBUS.KiemTraDayDu(txtKhoangGia.Text) Then
                Dim khachthue As New KhachThueDTO()
                Dim nhucau As New NhuCauDTO()

                khachthue.strMaKhachThue = txtMaKH.Text
                khachthue.strHoTen = txtTenKH.Text
                khachthue.strDienThoai = txtDienThoai.Text
                khachthue.isTinhTrang = False
                khachthue.isTamXoa = False

                KhachThueBUS.Update(khachthue)
                '-----------------------
                nhucau.iMaNhuCau = gvDSNhuCau.CurrentRow.Cells(0).Value
                nhucau.iMaLoaiNha = cbxLoaiNha.SelectedValue
                nhucau.iMaQuan = cbxQuan.SelectedValue
                nhucau.iKhoangGia = txtKhoangGia.Text
                nhucau.strMaKhachThue = khachthue.strMaKhachThue

                NhuCauBUS.Update(nhucau)

                MessageBox.Show("Bạn đã Sửa thành công Khách Hàng này!", "THÔNG BÁO")

                Dim listKhach As New List(Of KhachThueDTO)
                listKhach = KhachThueBUS.GetAll()
                gvDanhSachKH.DataSource = listKhach
            Else
                MessageBox.Show("Bạn chưa nhập đủ thông tin cần thiết!", "THÔNG BÁO")
            End If
        Else
            MessageBox.Show("Bạn chưa nhập đủ thông tin cần thiết!", "THÔNG BÁO")
        End If
    End Sub

    Private Sub cbxLuaChon_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbxLuaChon.SelectedIndexChanged
        Dim luachon As Integer = 0
        luachon = cbxLuaChon.SelectedIndex
        Select Case luachon
            Case 0
                lbNhapThongtin.Enabled = True
                txtThongTinTim.Enabled = True

                lbtinhtrang.Enabled = False
                rbtDaThue.Enabled = False
                rbtChuaThue.Enabled = False

                lbNhucauNha.Enabled = False
                cbxTimNhuCauNha.Enabled = False
            Case 1
                lbNhapThongtin.Enabled = True
                txtThongTinTim.Enabled = True

                lbtinhtrang.Enabled = False
                rbtDaThue.Enabled = False
                rbtChuaThue.Enabled = False

                lbNhucauNha.Enabled = False
                cbxTimNhuCauNha.Enabled = False
            Case 2
                lbtinhtrang.Enabled = True
                rbtDaThue.Enabled = True
                rbtChuaThue.Enabled = True

                lbNhapThongtin.Enabled = False
                txtThongTinTim.Enabled = False

                lbNhucauNha.Enabled = False
                cbxTimNhuCauNha.Enabled = False
            Case 3
                lbNhucauNha.Enabled = True
                cbxTimNhuCauNha.Enabled = True

                lbNhapThongtin.Enabled = False
                txtThongTinTim.Enabled = False

                lbtinhtrang.Enabled = False
                rbtDaThue.Enabled = False
                rbtChuaThue.Enabled = False
                
        End Select
    End Sub

    Private Sub btnTimKiem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTimKiem.Click
        Dim luachon As Integer = 0
        luachon = cbxLuaChon.SelectedIndex
        Select Case luachon
            Case 0
                If Not txtThongTinTim.Text = "" Then
                    Dim list As New List(Of KhachThueDTO)
                    list = KhachThueBUS.GetByID(txtThongTinTim.Text)
                    If Not list.Count = 0 Then
                        gvDanhSachKH.DataSource = list
                    Else
                        MessageBox.Show("Xin lỗi ! Không tìm thấy thông tin cần tìm!", "THÔNG BÁO")
                    End If
                Else
                    MessageBox.Show("Bạn chưa nhập thông tin cần tìm!", "THÔNG BÁO")
                End If
            Case 1
                If Not txtThongTinTim.Text = "" Then
                    Dim list As New List(Of KhachThueDTO)
                    list = KhachThueBUS.TimTheoTen(txtThongTinTim.Text)
                    If Not list.Count = 0 Then
                        gvDanhSachKH.DataSource = list
                    Else
                        MessageBox.Show("Xin lỗi ! Không tìm thấy thông tin cần tìm!", "THÔNG BÁO")
                    End If
                Else
                    MessageBox.Show("Bạn chưa nhập thông tin cần tìm!", "THÔNG BÁO")
                End If
            Case 2
                
                Dim tinhtrang As Boolean
                If rbtDaThue.Checked = True Then
                    tinhtrang = True
                ElseIf rbtChuaThue.Checked = True Then
                    tinhtrang = False
                End If
                Dim list As New List(Of KhachThueDTO)
                list = KhachThueBUS.TimTheoTinhTrang(tinhtrang)
                If Not list.Count = 0 Then
                    gvDanhSachKH.DataSource = list
                Else
                    MessageBox.Show("Xin lỗi ! Không tìm thấy thông tin cần tìm!", "THÔNG BÁO")
                End If
            Case 3
                Dim maloainha As Integer = cbxTimNhuCauNha.SelectedValue
                Dim list As New List(Of KhachThueDTO)
                list = KhachThueBUS.TimTheoNhuCauNha(maloainha)
                If Not list.Count = 0 Then
                    gvDanhSachKH.DataSource = list
                Else
                    MessageBox.Show("Xin lỗi ! Không tìm thấy thông tin cần tìm!", "THÔNG BÁO")
                End If

                
        End Select
    End Sub

    Private Sub btnTatCa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTatCa.Click
        Dim listKhach As New List(Of KhachThueDTO)
        listKhach = KhachThueBUS.GetAll()
        gvDanhSachKH.DataSource = listKhach
    End Sub
End Class